package cn.com.blueInfo.HaiYuan.business.invoice.mapper;

import cn.com.blueInfo.HaiYuan.business.invoice.entity.InvoiceDetailed;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * 发票详细信息
 * @ClassName: InvoiceDetailedMapper
 * @tableName: tj_hai_invoice_detailed
 * @author suxch
 * @date 2019年4月23日  下午1:43:45
 */
@Mapper
public interface InvoiceDetailedMapper extends BaseMapper<InvoiceDetailed> {

    /**
     * 批量新增发票详细信息
     * @Title: batchAddInvoiceDetailedInfo
     * @param invoiceDetailedList
     * @return int
     * @throws
     */
    int batchAddInvoiceDetailedInfo(List<InvoiceDetailed> invoiceDetailedList);

    /**
     * 新增发票详细信息
     * @Title: addInvoiceDetailedInfo
     * @param invoiceDetailed
     * @return int
     * @throws
     */
    int addInvoiceDetailedInfo(InvoiceDetailed invoiceDetailed);

    /**
     * 批量删除发票详细信息
     * @Title: batchDelInvoiceDetailedInfoByUnids
     * @param invoiceDetailedUnids
     * @return int
     * @throws
     */
    int batchDelInvoiceDetailedInfoByUnids(ArrayList<String> invoiceDetailedUnids);

    /**
     * 删除发票详细信息
     * @Title: delInvoiceDetailedInfoByUnid
     * @param unid
     * @return int
     * @throws
     */
    int delInvoiceDetailedInfoByUnid(String unid);

    /**
     * 批量更新发票详细信息
     * @Title: batchUpdateInvoiceDetailedInfoByUnid
     * @param invoiceDetailedList
     * @return int
     * @throws
     */
    int batchUpdateInvoiceDetailedInfoByUnid(List<InvoiceDetailed> invoiceDetailedList);

    /**
     * 更新发票详细信息
     * @Title: updateInvoiceDetailedInfoByUnid
     * @param invoiceDetailed
     * @return int
     * @throws
     */
    int updateInvoiceDetailedInfoByUnid(InvoiceDetailed invoiceDetailed);

    /**
     * 分页查询发票详细信息
     * @Title: queryInvoiceDetailedInfo
     * @param paramMap
     * @return List<InvoiceDetailed>
     * @throws
     */
    List<InvoiceDetailed> queryInvoiceDetailedInfo(Map<String, Object> paramMap);

    /**
     * 查询发票详细信息
     * @Title: queryInvoiceDetailedInfo
     * @return List<InvoiceDetailed>
     * @throws
     */
    List<InvoiceDetailed> queryInvoiceDetailedInfo();

    /**
     * 条件查询发票详细信息数量
     * @Title: queryInvoiceDetailedInfoCount
     * @param paramMap
     * @return Integer
     * @throws
     */
    Integer queryInvoiceDetailedInfoCount(Map<String, Object> paramMap);

    /**
     * 查询发票详细信息数量
     * @Title: queryInvoiceDetailedInfoCount
     * @return Integer
     * @throws
     */
    Integer queryInvoiceDetailedInfoCount();

    /**
     * 根据发票基本信息ID查询发票详细信息最大排序编号
     * @Title: queryMaxOrderNumber
     * @param baseId
     * @return Integer
     * @throws
     */
    Integer queryMaxOrderNumber(String baseId);

}
